<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ES6</title>
</head>
<body>
	<script>
		//es5不允许直接对函数参数赋值，es6允许
		function log(x,y="world"){
			console.log(x+y);
		}
		log("Hello");//Helloworld
		//参数变量是默认声明的，所以不能用let或const再次声明。
//		function log(x,y){
//			let x=1;//error
//			let y=0;//error
//		}
		//参数length属性：参数设默认值时该参数length参数消失
//		(function (a) {}).length // 1
//		(function (a = 5) {}).length // 0
//		(function (a, b, c = 5) {}).length // 2
		//rest参数：将参数放入数组中形如...+x,rest参数后不能再有参数，否则会报错
		function add(...values){
			let sum=0;
			for(var value in values){
				sum+=values[value]
			}
			console.log(sum)
		}
		add(1,2,3,4);
		//name属性：需要注意的是，ES6 对这个属性的行为做出了一些修改。如果将一个匿名函数赋值给一个变量，ES5 的name属性，会返回空字符串，而 ES6 的name属性会返回实际的函数名。
		function foo(){
			console.log(foo.name)
		}
		foo();//foo
		var f=function(){
			
		}
		///es5
		f.name//""
		//es6
		f.name//f
	</script>
</body>
</html>
